import requests
import json
from itertools import product  # 使用笛卡尔积代替 combinations，因为需要两个列表的组合

# 100个标签
tags = [
"古装",
"剧情",
"动作",
"爱情",
"奇幻",
"真人秀",
"搞笑",
"悬疑",
"原创",
"喜剧",
"犯罪",
"社会",
"冒险",
"动画",
"家庭",
"历史",
"萌系",
"现代",
"游戏",
"院线",
"当代",
"动态漫画",
"青春",
"益智",
"战争",
"偶像",
"战斗",
"军旅",
"言情",
"武侠",
"情感",
"社交",
"军事",
"魔幻",
"人物",
"文化",
"玄幻",
"音乐",
"友情",
"旅游",
"时尚",
"短片",
"农村",
"恋爱",
"古风",
"刑侦",
"传记",
"教育",
"科幻",
"惊悚",
"明星",
"伦理",
"网剧",
"宫廷",
"恐怖",
"泡面番",
"访谈",
"科技",
"动物",
"纯爱",
"儿歌",
"古代",
"时装",
"脱口秀",
"特摄",
"神话",
"婚恋",
"儿童",
"新闻",
"科普",
"舞蹈",
"选秀",
"综合",
"机战",
"故事",
"艺术",
"晚会",
"国外",
"养生",
"戏曲",
"健康",
"番剧",
"闯关",
"校园",
"财经",
"小品",
"国学",
"人文",
"汽车",
"启蒙",
"古代史",
"演出",
"现实",
"表演",
"历险",
"职场",
"相声",
"广场舞",
"经营",
"科学"
]

# 100个关键词
keywords = [
"内地"
]

# 生成所有两两组合（100 × 100 = 10,000 种）
tag_keyword_pairs = list(product(tags, keywords))  # 笛卡尔积

# 接口URL
url = "http://106.53.146.53:7001/api/ccSmartStrategy/saveStrategyTracksForTag/invoke"

# 请求头
headers = {
    'User-Agent': 'Apifox/1.0.0 (https://apifox.com)',
    'Content-Type': 'application/json'
}

# 分批发送（每批 100 个组合）
batch_size = 100
for i in range(0, len(tag_keyword_pairs), batch_size):
    batch = tag_keyword_pairs[i:i + batch_size]  # 获取当前批次

    # 构造请求数据（格式：A,B，如 "古装,热血"）
    payload_data = [
        {
            "tagNames": f"{pair[0]},{pair[1]}",  # 格式：标签,关键词
             "category": "综艺",
            "tagCombin": "标签+分类"
        }
        for pair in batch
    ]

    # 发送POST请求
    try:
        response = requests.post(
            url,
            headers=headers,
            data=json.dumps(payload_data)  # 转为JSON字符串
        )
        # 解析响应数据并提取 spanId
        response_json = response.json()  # 将响应转为 JSON 字典
        span_id = response_json.get("data", {}).get("spanId", "")  # 安全获取 spanId
        print(f"\"{span_id}\",")
    except Exception as e:
        print(f"Batch {i // batch_size + 1} failed: {str(e)}")